/**
 * 核心代码
 */
function Core() {
}
Core.prototype = {
	init : function() {
		Ext.Loader.setPath({
					'Ext.ux' : 'module/ux'
				});
		var me = this;
		me.initMain();
		me.initTimeshow();
		// 加载首页日历
		Calendar.init();
	},
	initTimeshow : function() {
		var me = this;
		Nl.init();
		me.showTime();
		setInterval(function() {
					me.showTime();
				}, 1000);
		setTimeout(function() {
					new Ggweather().init();
				}, 200);
	},
	showTime : function() {
		document.getElementById('jnkc').innerHTML = new Date().toLocaleString()
				+ ' 星期' + '日一二三四五六'.charAt(new Date().getDay());
	},
	initMain : function() {
		var me = this;
		var panel = Ext.create("Ext.Viewport", {
			renderTo : 'm',
			id : 'mainpanel',
			border : 1,
			layout : 'fit',
			style : {
				backgroundColor : '#C2DDF4'
			},
			items : [{
				xtype : 'panel',
				layout : {
					type : 'border',
					padding : 5
				},
				defaults : {
					split : true
				},
				items : [{
					region : 'north',
					border : false,
					split : false,
					height : 83,
					id : 'mnorth',
					html : '<!-- 抬头 -->'
							+ '<div id="topBanner">'
							+ '<div class="topBannerLeft">'
							+ '	<div class="topBannerRight">'
							+ '		<table class="topTable">'
							+ '			<tr>'
							+ '				<td align="right" height="18">'
							+ '					<span style="cursor: text">'
							+ LoginUserXm
							+ '</span>'
							+ '				</td>'
							+ '			</tr>'
							+ '			<tr>'
							+ '				<td align="right" height="18">'
							+ '					<span id="jnkc" style="cursor: text"></span>'
							+ '				</td>'
							+ '			</tr>'
							+ '			</table>'
							+ '		</div>'
							+ '	</div>'
							+ '</div>'
							+ '<!-- 导航菜单 -->'
							+ '<div id="naviMenu">'
							+ '	<div id="navigation" class="ddsmoothmenu">'
							+ '	</div>'
							+ '	<div class="fullScreenFathor">'
							+ '		<span id="fullScreen" onclick="utils.fullScreen()"'
							+ '			style="cursor: pointer">全屏</span> &nbsp;&nbsp;&nbsp;&nbsp;'
							+ '		<span onclick="utils.logoutsys()" style="cursor: pointer">退出'
							+ '		</span>' + '	</div>' + '</div>'
				}, {
					region : 'center',
					border : false,
					split : false,
					layout : 'border',
					items : [{
								region : 'west',
								title : '系统菜单',
								layout : 'fit',
								split : true,
								width : 200,
								items : [me.initDeskMenu()]
							}, {
								region : 'center',
								xtype : 'tabpanel',
								id : 'deskBody',
								enableTabScroll : true,
								tabBar : {
									height : 36,
									defaults : {
										height : 34
									}
								},
								plugins : Ext.create('Ext.ux.TabCloseMenu', {
									extraItemsTail : ['-', {
										text : '允许关闭',
										checked : true,
										hideOnClick : true,
										handler : function(item) {
											currentItem.tab
													.setClosable(item.checked);
										}
									}, {
										text : '允许点击',
										checked : true,
										hidden : true,
										hideOnClick : true,
										handler : function(item) {
											currentItem.tab
													.setDisabled(!item.checked);
										}
									}],
									listeners : {
										aftermenu : function() {
											currentItem = null;
										},
										beforemenu : function(menu, item) {
											if (item.title != '首页') {
												menu.child('[text="允许关闭"]')
														.setDisabled(false);
												menu.child('[text="允许点击"]')
														.setDisabled(false);
											} else {
												menu.child('[text="允许关闭"]')
														.setDisabled(true);
												menu.child('[text="允许点击"]')
														.setDisabled(true);
											}
											menu.child('[text="允许关闭"]')
													.setChecked(item.closable);
											menu.child('[text="允许点击"]')
													.setChecked(!item.tab
															.isDisabled());
											currentItem = item;
										}
									}
								}),
								items : [{
									title : '首页',
									id : 'tabsy',
									tabConfig : {
										tooltip : 'Tip:欢迎使用本系统',
										iconCls : "icon-tab-home"
									},
									html : "<div id='rili' style='position:absolute;width:100%;height:100%;'></div>"
								}]
							}]
				}]
			}]
		});
	},
	initDeskMenu : function() {
		var me = this;
		var store = Ext.create('Ext.data.TreeStore', {
					storeId : 'coreLeftMenuStore',
					proxy : {
						type : 'ajax',
						url : 'GetLeftMenu'
					},
					root : {
						text : '首页',
						id : '0',
						iconCls : "icon-tab-home",
						expanded : true
					}
				});
		var tree = Ext.create('Ext.tree.Panel', {
					store : store,
					hideHeaders : true,
					rootVisible : true,
					viewConfig : {
						plugins : [{
									ptype : 'treeviewdragdrop'
								}]
					},
					style : 'height:40px;',
					collapsible : false,
					listeners : {
						itemclick : function(t, record, item, index) {
							// 采用动态JS加载技术
							if (record.get('text') != '首页') {
								var temp = record.raw.jsfile;
								if (temp.indexOf(".") != -1) {
									temp = temp.split('.')[0];
								}
								Ext.require('module/' + temp);
								// 打开页面
								setTimeout(function() {
											me.openTheDesk(record.raw);
										}, 200)
							} else {
								me.openTheDesk({
											classid : 'sy'
										});
							}
						}
					}
				});
		return tree;
	},
	/**
	 * 打开功能
	 * 
	 * @param {}
	 *            data 数据
	 */
	openTheDesk : function(data) {
		if (!data) {
			return false;
		}
		var tempPanel;
		var el = Ext.getCmp('tab' + data.classid);
		var deskBody = Ext.getCmp('deskBody');
		var msk = utils.showMask(deskBody, '正在为您加载，请稍后......');
		if (!Ext.isEmpty(deskBody)) {
			if (!el) {
				if (moduleType) {
					try {
						eval('tempPanel =' + data.className + '.init();');
					} catch (e) {
						utils.hideMask(msk);
						utils.hideAutoNotification('提示', '【' + data.text
										+ '】开发中,敬请期待！');
						return false;
					}
				} else {
					eval('tempPanel =' + data.className + '.init();');
				}

				if (!Ext.isEmpty(tempPanel)) {
					var panel = Ext.create('Ext.panel.Panel', {
								closable : true,
								title : data.text,
								id : 'tab' + data.classid,
								iconCls : data.iconCls,
								layout : 'fit',
								border : false,
								items : [tempPanel]
							});
					deskBody.add(panel);
					deskBody.doLayout();
					var layout = deskBody.getLayout();
					layout.setActiveItem('tab' + data.classid);
					utils.hideAutoNotification('提示', '【' + data.text + '】已加载！');
				} else {
					utils.hideAutoNotification('提示', '【' + data.text + '】已加载！');
				}
			} else {
				var layout = deskBody.getLayout();
				if (data.text == '首页') {
					layout.setActiveItem('tabsy');
				} else {
					layout.setActiveItem('tab' + data.classid);
				}
			}
		} else {
			Ext.MessageBox.show({
						title : '初始化失败',
						msg : '画板初始化失败！',
						buttons : Ext.MessageBox.OK,
						icon : Ext.MessageBox.ERROR
					});
		}
		utils.hideMask(msk);
	}
}